package dados;

import java.sql.SQLException;
import javax.swing.JOptionPane;
import negocios.Classificacao;

public class BancoClassificacoes implements IBancoClassificacoes {

	private static BancoClassificacoes bancoClassificacoes = null;

    private BancoClassificacoes() {

        // Contrutor privado, padrao singleton.

    }

    public static BancoClassificacoes getInstance() {

        if (bancoClassificacoes == null) {

            bancoClassificacoes = new BancoClassificacoes();

        }

        return bancoClassificacoes;

    }
	
    @Override public Classificacao consultarClassificacao(Classificacao classificacao) {

        try {

            ConectaBDClassificacoes conexao = new ConectaBDClassificacoes();

            return conexao.consultarClassificacao(classificacao);

        } catch(SQLException e) {

            JOptionPane.showMessageDialog(null, e.getMessage(), "Erro na execução da consulta", JOptionPane.ERROR_MESSAGE);

        } catch(ClassNotFoundException e) {

            JOptionPane.showMessageDialog(null, e.getMessage(), "Erro de classe não encontrada", JOptionPane.ERROR_MESSAGE);

        }

		return null;

	}

    @Override public void editarClassificacao(Classificacao classificacao) {

        try {

            ConectaBDClassificacoes conexao = new ConectaBDClassificacoes();

            conexao.editarClassificacao(classificacao);

        } catch(SQLException e) {

            JOptionPane.showMessageDialog(null, e.getMessage(), "Erro na execução da edição", JOptionPane.ERROR_MESSAGE);

        } catch(ClassNotFoundException e) {

            JOptionPane.showMessageDialog(null, e.getMessage(), "Erro de classe não encontrada", JOptionPane.ERROR_MESSAGE);

        }

	}

    @Override public void excluirClassificacao(Classificacao classificacao) {

        try {

            ConectaBDClassificacoes conexao = new ConectaBDClassificacoes();

            conexao.excluirClassificacao(classificacao);

        } catch(SQLException e) {

            JOptionPane.showMessageDialog(null, e.getMessage(), "Erro na execução da remoção", JOptionPane.ERROR_MESSAGE);

        } catch(ClassNotFoundException e) {

            JOptionPane.showMessageDialog(null, e.getMessage(), "Erro de classe não encontrada", JOptionPane.ERROR_MESSAGE);

        }

	}

    @Override public void inserirClassificacao(Classificacao classificacao) {

        try {

            ConectaBDClassificacoes conexao = new ConectaBDClassificacoes();

            conexao.inserirClassificacao(classificacao);

        } catch(SQLException e) {

            JOptionPane.showMessageDialog(null, e.getMessage(), "Erro na execução da consulta", JOptionPane.ERROR_MESSAGE);

        } catch(ClassNotFoundException e) {

            JOptionPane.showMessageDialog(null, e.getMessage(), "Erro de classe não encontrada", JOptionPane.ERROR_MESSAGE);

        }

	}

	public Object[] listarClassificacoes() {

        try {

            ConectaBDClassificacoes conexao = new ConectaBDClassificacoes();

            return conexao.listarClassificacoes();

        } catch(SQLException e) {

            JOptionPane.showMessageDialog(null, e.getMessage(), "Erro na execução da consulta", JOptionPane.ERROR_MESSAGE);

        } catch(ClassNotFoundException e) {

            JOptionPane.showMessageDialog(null, e.getMessage(), "Erro de classe não encontrada", JOptionPane.ERROR_MESSAGE);

        }

		return null;
	}

}
